package RRHH_Modelo;

import Conexion.Conexion;
import java.sql.SQLException;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;

public class RHH_PAGO_QUINCENA_CUENTAS {

    private int ID_PAGO_QUINCENA;
    private int ID_CUENTA;
    private int ID_CENTRO_COSTO;
    private Conexion con = null;

    public RHH_PAGO_QUINCENA_CUENTAS(Conexion con) {
        this.con = con;
    }

    public RHH_PAGO_QUINCENA_CUENTAS(int ID_PAGO_QUINCENA, int ID_CUENTA, int ID_CENTRO_COSTO) {
        this.ID_PAGO_QUINCENA = ID_PAGO_QUINCENA;
        this.ID_CUENTA = ID_CUENTA;
        this.ID_CENTRO_COSTO = ID_CENTRO_COSTO;
    }

    public boolean Insertar() throws SQLException {
        String centro ="null";
        if(ID_CENTRO_COSTO!=0)
            centro=ID_CENTRO_COSTO+"";
        String consulta = "insert into BROKER.RHH_PAGO_QUINCENA_CUENTAS (ID_PAGO_QUINCENA, ID_CUENTA, ID_CENTRO_COSTO) VALUES (" + ID_PAGO_QUINCENA + "," + ID_CUENTA + "," + centro + ")";
        con.EjecutarSentencia(consulta);
        return true;
    }
    
    public void modificar(int idquinc, int idcuenta,int idcentro) throws SQLException {        
        String consulta = "select * from BROKER.RHH_PAGO_QUINCENA_CUENTAS where ID_PAGO_QUINCENA = " +idquinc ;
        ResultSet rs = con.EjecutarConsulta(consulta);
        List<RHH_PAGO_QUINCENA_CUENTAS> lista = Cargar(rs);
        String centro ="null";
        if(idcentro!=0)
            centro = idcentro+"";
        if(lista.size()>0)
        {
            consulta = "update BROKER.RHH_PAGO_QUINCENA_CUENTAS set ID_CUENTA="+idcuenta+", ID_CENTRO_COSTO="+centro+" where ID_PAGO_QUINCENA = " +idquinc;
            con.EjecutarSentencia(consulta);            
        }
        else
        {
            consulta = "insert into BROKER.RHH_PAGO_QUINCENA_CUENTAS (ID_PAGO_QUINCENA, ID_CENTRO_COSTO, ID_CUENTA) VALUES (" + idquinc + "," + centro + "," + idcuenta + ")";
            con.EjecutarSentencia(consulta);            
        }
    }
/*
 * 
 * 
    public boolean Modificar() throws SQLException {
        String consulta = "update BROKER.RHH_PAGO_QUINCENA_CUENTAS set ID_PAGO_QUINCENA = " + ID_PAGO_QUINCENA + ",ID_CUENTA = " + ID_CUENTA + ",ID_CENTRO_COSTO = " + ID_CENTRO_COSTO + " where ID =  " + getID();
        con.EjecutarSentencia(consulta);
        return true;
    }

    public boolean EliminarXid() throws SQLException {
        String consulta = "delete from BROKER.RHH_PAGO_QUINCENA_CUENTAS where ID= " + getID();
        con.EjecutarSentencia(consulta);
        return true;
    }

    public RHH_PAGO_QUINCENA_CUENTAS Buscar(int id) throws SQLException {
        String consulta = "select * from BROKER.RHH_PAGO_QUINCENA_CUENTAS where ID = " + getID();
        ResultSet rs = con.EjecutarConsulta(consulta);
        List<RHH_PAGO_QUINCENA_CUENTAS> lista = Cargar(rs);
        if (lista.size() > 0) {
            return lista.get(0);
        } else {
            return null;
        }
    }
*/
    public List<RHH_PAGO_QUINCENA_CUENTAS> Todos() throws SQLException {
        String consulta = "select * from BROKER.RHH_PAGO_QUINCENA_CUENTAS";
        ResultSet rs = con.EjecutarConsulta(consulta);
        List<RHH_PAGO_QUINCENA_CUENTAS> lista = Cargar(rs);
        return lista;
    }
    
    public RHH_PAGO_QUINCENA_CUENTAS BuscarXusuario(int idusuario) throws SQLException {
        String consulta = "SELECT RHH_PAGO_QUINCENA_CUENTAS.* FROM BROKER.RHH_PAGO_QUINCENA_CUENTAS\n" +
                            "WHERE RHH_PAGO_QUINCENA_CUENTAS.ID_PAGO_QUINCENA =(SELECT MAX (RHH_PAGO_QUINCENA_CUENTAS.ID_PAGO_QUINCENA)\n" +
                            "  FROM BROKER.RHH_PAGOS_QUINCENA, BROKER.RHH_PAGO_QUINCENA_CUENTAS\n" +
                            " WHERE (RHH_PAGO_QUINCENA_CUENTAS.ID_PAGO_QUINCENA = RHH_PAGOS_QUINCENA.ID)\n" +
                            "       AND (RHH_PAGOS_QUINCENA.ID_USUARIO = "+idusuario+"))";
        ResultSet rs = con.EjecutarConsulta(consulta);
        List<RHH_PAGO_QUINCENA_CUENTAS> lista = Cargar(rs);
        if(lista.size()>0)
            return lista.get(0);
        else
            return null;
    }

    public List<RHH_PAGO_QUINCENA_CUENTAS> Cargar(ResultSet rs) throws SQLException {
        List<RHH_PAGO_QUINCENA_CUENTAS> lista = new ArrayList<RHH_PAGO_QUINCENA_CUENTAS>();
        while (rs.next()) {
            RHH_PAGO_QUINCENA_CUENTAS objeto = new RHH_PAGO_QUINCENA_CUENTAS(con);
            objeto.setID_PAGO_QUINCENA(rs.getInt("ID_PAGO_QUINCENA"));
            objeto.setID_CUENTA(rs.getInt("ID_CUENTA"));
            objeto.setID_CENTRO_COSTO(rs.getInt("ID_CENTRO_COSTO"));
            lista.add(objeto);
        }
        return lista;
    }

    public int getID_PAGO_QUINCENA() {
        return ID_PAGO_QUINCENA;
    }

    public void setID_PAGO_QUINCENA(int ID_PAGO_QUINCENA) {
        this.ID_PAGO_QUINCENA = ID_PAGO_QUINCENA;
    }

    public int getID_CUENTA() {
        return ID_CUENTA;
    }

    public void setID_CUENTA(int ID_CUENTA) {
        this.ID_CUENTA = ID_CUENTA;
    }

    public int getID_CENTRO_COSTO() {
        return ID_CENTRO_COSTO;
    }

    public void setID_CENTRO_COSTO(int ID_CENTRO_COSTO) {
        this.ID_CENTRO_COSTO = ID_CENTRO_COSTO;
    }

    public Conexion getCon() {
        return this.con;
    }

    public void setCon(Conexion con) {
        this.con = con;
    }
}
